package com.demo.java.OD1_50.OD4;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 消消乐游戏(B卷)
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145499721
 */
public class xiaoxiaole {

    /**
     * 通过栈（StringBuffer）删除字符串中相邻的相同字符
     *
     * @param line 输入的字符串
     * @return 最终剩下的字符串长度
     */
    public static int xiaoxiaole(String line) {
        // 使用 StringBuffer 模拟栈结构
        StringBuffer sbStack = new StringBuffer();

        // 遍历输入字符串
        for (int i = 0; i < line.length(); ++i) {
            // 如果栈不为空且栈顶字符与当前字符相同，弹出栈顶字符
            if (sbStack.length() > 0 && sbStack.charAt(sbStack.length() - 1) == line.charAt(i)) {
                sbStack.deleteCharAt(sbStack.length() - 1);
            } else {
                // 否则将当前字符压入栈
                sbStack.append(line.charAt(i));
            }
        }
        // 返回剩下的字符串的长度
        return sbStack.length();
    }

    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            System.out.print("输入: ");
            // 读取输入的字符串
            String lines = s.nextLine();
            // 输出剩余字符串的长度
            System.out.println("输出：" + xiaoxiaole(lines));
        } catch (Exception e) {
            // 输出异常信息
            System.out.println("发生错误: " + e.getMessage());
        }
    }
}
